package ddd.damage;
import ddd.Monster;
import ddd.Player;
import ddd.Weapon;

/**
 * 损害策略
 * @author dengzhiyuan
 * @version 1.0
 * @time 2021/5/31 18:40
 */
public interface DamagePolicy {
    /**
     * 是否可以使用自身策略
     * @author dengzhiyuan
     * @version 1.0
     * @time 2021/6/1 16:39
     * @param player
     * @param weapon
     * @param monster
     * @return 
     */
    boolean canApply(Player player, Weapon weapon, Monster monster);

    /**
     * 计算损害值
     * @param player
     * @param weapon
     * @param monster
     * @return
     */
    int calculateDamage(Player player, Weapon weapon, Monster monster);

}
